There are alphabet and non-alphabet languages in the world. For example, Chinese, Japanese and Korean borrowed alphabetic elements to represent their own phonetic symbols or strokes.
A computer keyboard is a common device for providing a computer input. A keyboard is language-specific such that the alphabet or non-alphabet keys available on the keyboard can be pressed to directly input only those characters or symbols in the keyboard's language that are assigned to those keys. For inputting other characters or symbols in the language, a user may need to press a combination of keys on the keyboard to invoke a specific input method application for the language.
Many languages have sets of characters or symbols (e.g., character alphabet in English, or phonetic or stroke alphabet in other languages) that are too large to accommodate on a keyboard. Many languages need other ways of mapping the keyboard keys to the characters or symbols in the language's set of characters or symbols. Using the keyboard keys according to the mapping produces the mapped characters or symbols in the language. Furthermore, the phonetic or stroke alphabets of many languages do not use characters to form words in the manner of the English language, but have a single character or collection of characters that represent words. Thus, providing computer input in many languages is not as simple as pressing the letter-keys on the keyboard but an indirect process of pressing a combination of keys to generate characters not available as keys on the keyboard.
Unicode is a method of coding characters of multiple languages. A Unicode table comprises unique codes called code points assigned to characters of one or more languages. A code point comprises an alphanumeric representation that can be generated on commonly used keyboard configurations, such as an English language QWERTY keyboard.
To enter a code point, the user generally supplies an indication that the alphanumeric string following the indication is a Unicode code point as is to be translated using a Unicode table to generate a character. For example, using a QWERTY keyboard, the user presses the ALT key, keeps the ALT key depressed while entering the code point, and releases the ALT key when the code point entry is complete.
An application called a Unicode input method application (hereinafter, “input method”, or “UIM”) intercepts the Unicode code point that the user enters. A Unicode editor is an example UIM. The UIM looks up a Unicode table to find the character that matches the code point that the user entered. The UIM supplies the character to a target application to which the user is supplying the input.
Different sections in a Unicode table comprise different unique sets of unique code points to represent different sets of characters in different languages. In other words, a code point in all of Unicode is unique to a specific character in a specific language.